package parser.prestige.meldunek.xml;

import parser.prestige.AbstractNode;
import parser.prestige.IXmlElement;

import javax.xml.stream.XMLEventFactory;
import javax.xml.stream.XMLEventWriter;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.XMLEvent;

/**
 * Created with IntelliJ IDEA.
 * User: marcin.kaluza
 * Date: 02.12.13
 * Time: 09:36
 * To change this template use File | Settings | File Templates.
 */
public class Czynnosc extends AbstractNode implements IXmlElement {
    private String czynnosc;
    private String kodCzynnosci;
    private String lpCzynnosci;
    private String ilosc;
    private String czas;
    private String stawka;
    private String koszt;
    private Pracownik pracownik;

    public Czynnosc(String czynnosc, String kodCzynnosci, String lpCzynnosci, String ilosc, String czas, String stawka, String koszt, Pracownik pracownik) {
        this.czynnosc = czynnosc;
        this.kodCzynnosci = kodCzynnosci;
        this.lpCzynnosci = lpCzynnosci;
        this.ilosc = ilosc;
        this.czas = czas;
        this.stawka = stawka;
        this.koszt = koszt;
        this.pracownik = pracownik;
    }

    public Czynnosc() {
        this.czynnosc = "";
        this.kodCzynnosci = "";
        this.lpCzynnosci = "";
        this.ilosc = "";
        this.czas = "";
        this.stawka = "";
        this.koszt = "";
        this.pracownik = new Pracownik();
    }

    public String getCzynnosc() {
        return czynnosc;
    }

    public void setCzynnosc(String czynnosc) {
        this.czynnosc = czynnosc;
    }

    public String getKodCzynnosci() {
        return kodCzynnosci;
    }

    public void setKodCzynnosci(String kodCzynnosci) {
        this.kodCzynnosci = kodCzynnosci;
    }

    public String getLpCzynnosci() {
        return lpCzynnosci;
    }

    public void setLpCzynnosci(String lpCzynnosci) {
        this.lpCzynnosci = lpCzynnosci;
    }

    public String getIlosc() {
        return ilosc;
    }

    public void setIlosc(String ilosc) {
        this.ilosc = ilosc;
    }

    public String getCzas() {
        return czas;
    }

    public void setCzas(String czas) {
        this.czas = czas;
    }

    public String getStawka() {
        return stawka;
    }

    public void setStawka(String stawka) {
        this.stawka = stawka;
    }

    public String getKoszt() {
        return koszt;
    }

    public void setKoszt(String koszt) {
        this.koszt = koszt;
    }

    public Pracownik getPracownik() {
        return pracownik;
    }

    public void setPracownik(Pracownik pracownik) {
        this.pracownik = pracownik;
    }


    @Override
    public void createAsNode(XMLEventWriter eventWriter, int tabValue) throws XMLStreamException{
        XMLEventFactory eventFactory = XMLEventFactory.newInstance();
        XMLEvent endLineEvent = eventFactory.createDTD("\n");
        XMLEvent tabulatorEvent = eventFactory.createDTD("\t");

        //TAG:<Czynnosc>
        addTabs(eventWriter, tabValue);
        eventWriter.add(eventFactory.createStartElement("", "", "Czynnosc"));
        eventWriter.add(endLineEvent);

        //składowe Czynnosc
        addNode(eventWriter, "Czynnosc", czynnosc, tabValue + 1);
        addNode(eventWriter, "KodCzynnosci", kodCzynnosci, tabValue + 1);
        addNode(eventWriter, "LPCzynnosci", lpCzynnosci, tabValue + 1);
        addNode(eventWriter, "Ilosc", ilosc, tabValue + 1);
        addNode(eventWriter, "Czas", czas, tabValue + 1);
        addNode(eventWriter, "Stawka", stawka, tabValue + 1);
        addNode(eventWriter, "Koszt", koszt, tabValue + 1);
        pracownik.createAsNode(eventWriter, tabValue + 1);
        //koniec składowych Czynnosc

        //TAG:</Czynnosc>
        addTabs(eventWriter, tabValue);
        eventWriter.add(eventFactory.createEndElement("", "", "Czynnosc"));
        eventWriter.add(endLineEvent);
    }
}
